﻿<?xml version="1.0" encoding="utf-8" ?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

	<xs:element name="BasicElement" type="xs:string" />
	
	<xs:element name="NumberElement" type="xs:int" />
	
	<xs:element name="ComplexElement">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="e1" type="xs:string" />
				<xs:element name="e2" type="xs:string" minOccurs="2" maxOccurs="2" />
				<xs:element name="e3" type="xs:string" minOccurs="0" maxOccurs="1" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="NestedElement">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="foo">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="bar" type="xs:string" />
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="WithAttributesElement">
		<xs:complexType>
			<xs:attribute name="attr1" />
			<xs:attribute name="attr2" />
		</xs:complexType>
	</xs:element>
	
	<xs:element name="EmptyElement">
		<xs:complexType />
	</xs:element>
	
	<xs:element name="NillableElement" nillable="true">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="foo" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="IDsElement">
		<xs:complexType>
			<xs:sequence maxOccurs="unbounded">
				<xs:element name="foo">
					<xs:complexType>
						<xs:attribute name="attr" type="xs:ID" />
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="ListElement">
		<xs:simpleType>
			<xs:list itemType="xs:int" />
		</xs:simpleType>
	</xs:element>
	
	<xs:element name="UnionElement">
		<xs:simpleType>
			<xs:union memberTypes="xs:int xs:boolean" />
		</xs:simpleType>
	</xs:element>
	
	<xs:element name="LaxElement">
		<xs:complexType>
			<xs:sequence>
				<xs:any namespace="##any" processContents="lax" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:complexType name="EmptyType" />

</xs:schema>
